home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / SASETUP.MSI / F77547_ots_sort.asp < prev    next >
Encoding:
Text File  |  2003-02-21  |  1.6 KB  |  73 lines

  1. <%    '==================================================
  2.     ' Module:    ots_sort.asp
  3.     ' Synopsis:    Sorting routines for Object Task Selector
  4.     ' Copyright (c) Microsoft Corporation.  All rights reserved.
  5.     '================================================== %>
  6. <%
  7.  
  8. Const vbCompareText = 1
  9. Const vbCompareLT = -1
  10. Const vbCompareEQ = 0
  11. Const vbCompareGT = 1
  12.  
  13. ' --------------------------------------------------------------
  14. ' Function:    OTS_SortTable
  15. '
  16. ' Synopsis:    Sort the tables rows data. The quick sort needs to use
  17. '            StrComp so a text (rather than binary) compare is
  18. '            performed. 
  19. ' Arguments: [in] The table
  20. '
  21. ' Returns:    The sorted Table object
  22. '
  23. ' --------------------------------------------------------------
  24. Public Function OTS_SortTable(ByRef Table, ByVal keyCol, ByVal sortSequence, bUseCompareCallback)
  25.     Dim min
  26.     Dim max
  27.     Dim rc
  28.     Dim rows
  29.  
  30.     SA_ClearError()
  31.  
  32.     '
  33.     ' Validate arguments
  34.     If ( Len(bUseCompareCallback) <= 0 ) Then
  35.         bUseCompareCallback = FALSE
  36.     End If
  37.     
  38.     If ( (bUseCompareCallback <> TRUE) AND (bUseCompareCallback <> FALSE) ) Then
  39.         bUseCompareCallback = FALSE
  40.     End If
  41.  
  42.  
  43.     If ( (sortSequence <> "A") AND (sortSequence <> "D") ) Then
  44.         sortSequence = "A"
  45.     End If
  46.     
  47.     
  48.     rc = OTS_GetTableRows(Table, rows)
  49.     if ( rc = gc_ERR_SUCCESS ) Then
  50.         
  51.         min = 0
  52.         max = UBound(rows)-1
  53.  
  54.         Dim maxCols
  55.         maxCols = UBound(rows(0))+1
  56.  
  57.  
  58.         Call OTS_SetTableSortCriteria(Table, keyCol, sortSequence)
  59.  
  60.         Call SAQuickSortEx(rows, min, max, maxCols, keyCol, sortSequence, bUseCompareCallback)
  61.  
  62.         rc = OTS_SetTableRows(Table, Rows)
  63.  
  64.     Else
  65.         rc = gc_ERR_SUCCESS
  66.     End If
  67.     
  68.     OTS_SortTable = rc
  69. End Function
  70. %>
  71.